/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package spoc.interfaces;


import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import spoc.classes.BancoDeDados;
import spoc.classes.Material;

/**
 *
 * @author dola
 */
public class PainelConsultaMaterias extends PainelConsulta{
    
    Material[] materias;    
    
    public PainelConsultaMaterias(){
        super();
        
        this.setCadastro(new JanelaMaterial(TipoJanela.CADASTRO,null));
        
        modelo = new String[]{"Código","Nome","Preço"};
        
        setModelo(modelo, new double[]{15,70,15});
    }

    
    void alterar(int codigo) {
        JanelaMaterial janela = new JanelaMaterial(TipoJanela.ALTERACAO,
                BancoDeDados.consultar(new Material(codigo))[0]);
        
        janela.setModalityType(java.awt.Dialog.DEFAULT_MODALITY_TYPE);
        janela.setModal(true);
        janela.setVisible(true);
    }
    
    
    void informacoes(int codigo) {
        JanelaMaterial janela = new JanelaMaterial(TipoJanela.INFORMACAO,
                BancoDeDados.consultar(new Material(codigo))[0]);
        
        janela.setModalityType(java.awt.Dialog.DEFAULT_MODALITY_TYPE);
        janela.setModal(true);
        janela.setVisible(true);
    }
    
    @Override
    void pesquisar() {
        materias = getMaterias();
        if(materias.length == 0){
            JOptionPane.showMessageDialog(this, "A busca não retornou nenhum resultado!");
            return;
        }
        
        Object[][] dados = new Object[materias.length][4];

        for(int i = 0; i < materias.length; i++){
            dados[i][0] = materias[i].getCodigo();
            dados[i][1] = materias[i].getNome();
            dados[i][2] = materias[i].getPreco();
        }

        DefaultTableModel model = (DefaultTableModel) this.tabela.getModel();

        model.setDataVector(dados, modelo);
        redimensionarColunas();
    
    }

    
    @Override
    void excluir(int codigo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    private Material[] getMaterias(){
        Material material = new Material();
        
        if(comboPesquisa.getSelectedIndex() < 2){
            if(!campoPesquisa.getText().equals("")){
                if(comboPesquisa.getSelectedIndex() == 0){
                    material.setCodigo(Integer.valueOf(campoPesquisa.getText()));
                } else if(comboPesquisa.getSelectedIndex() == 1){
                    material.setNome(campoPesquisa.getText());
                }
            }
            return BancoDeDados.consultar(material);
        }

                
        return new Material[0];
    }
    
}
